package com.example.assetmanagement.service;

import com.example.assetmanagement.common.PageRequest;
import com.example.assetmanagement.common.PageResponse;
import com.example.assetmanagement.domain.Asset;
import com.example.assetmanagement.domain.AssetHistory;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface AssetService {

    PageResponse<Asset> list(PageRequest pageRequest, String name, Long categoryId, Integer status);

    Asset getById(Long id);

    void add(Asset asset);

    void update(Long id, Asset asset);

    void delete(Long id);

    void batchDelete(List<Long> ids);

    void importAssets(MultipartFile file) throws IOException;

    byte[] exportAssets(String name, Long categoryId, Integer status) throws IOException;

    List<AssetHistory> getHistoryByAsset(Long assetId);

    void addHistory(AssetHistory history);
} 